<!-- buy.php avec 'id' dans GET -->

<?php	
	echo "</br></br>" ; // sauts de lignes pour le design ..
	// LOCATION DE DVD
	// On a besoin de : login client (SESSION), account client, price dvd, id_client, id_dvd (dans le GET), date
	
	$dom = new DomDocument();
	$dom->load('dvd.xml');
	$racine = $dom->documentElement ;
	/* initialisation de la requete xpath */
	$xpath = new DOMXPath($dom);
			
	// la requete à effectuer sur l'arbre XML
	$query = "//dvd[attribute::id =\"".$_GET['id']."\"]/price";
	
	// evaluation de la requete
	$entries = $xpath->evaluate($query, $racine);
	
	// Initialisation du prix du dvd
	$prix = null ;
	foreach($entries as $e){
		$prix = $e->nodeValue;
	}
	
	// init du solde disponible du client
	$bd = openBD();
	$stmt_solde = $bd->prepare("SELECT account FROM CLIENT WHERE login = :login");
	$stmt_solde->bindParam(':login', $_SESSION["login"]);
	$stmt_solde->setFetchMode(PDO::FETCH_OBJ);
	$stmt_solde->execute();
	
	if($stmt_solde->rowCount() == 1){
		while($ligne = $stmt_solde->fetch()){
		     $account = $ligne->account.'</br>';
		}
	}
	else{
		echo "erreur solde client" ;
	}
	
	//init de l'identifiant unique du client
	$stmt_id_client = $bd->prepare("SELECT idClient FROM CLIENT WHERE login = :login");
	$stmt_id_client->bindParam(':login', $_SESSION["login"]);
	$stmt_id_client->setFetchMode(PDO::FETCH_OBJ);
	$stmt_id_client->execute();
	
	if($stmt_id_client->rowCount() == 1){
		while($ligne = $stmt_id_client->fetch()){
		     $idClient = $ligne->idClient.'</br>';
		}
	}
	else{
		echo "erreur id_client" ;
	}
	
	// si l'argent sur le compte est suffisant, le client peut acheter le dvd
	if((int)$account > (int)$prix){
		try{
			// insertion du client et du dvd dans la base
			$stmt_insert = $bd->prepare("INSERT INTO CLIENT_has_DVD (idClient, idDvd, date) VALUES (:idClient, :idDvd, now())");
			$stmt_insert->bindParam(':idClient', $idClient);
			$stmt_insert->bindParam(':idDvd', $_GET['id']);
			$stmt_insert->execute() ;
			
			$nouveau_solde = $account - $prix ;
			$stmt_debite = $bd->prepare("UPDATE CLIENT SET account = :argent_deb where login = :login");
			$stmt_debite->bindParam(':login', $_SESSION["login"]);
			$stmt_debite->bindParam(':argent_deb', $nouveau_solde);
			$stmt_debite->execute();
			echo "Le dvd a été loué avec succès. Votre nouveau solde est de ".$nouveau_solde." euros" ;
		}catch(Exception $e){
			echo "erreur lors de l'achat du dvd, vous l'avez déjà loué." ;
		}
	}
	else{
		echo "Argent insuffisant sur le compte, il faut le recharger. Il vous reste ".$account." euros" ;
	}
?>






















